package DAOs;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import POJOs.CiudadPOJO;

public class CiudadesDAO {
	

	private static SessionFactory sessionFactory;	
	private Session session;
	
	protected final Log logger = LogFactory.getLog(getClass());
	
	public CiudadesDAO(){
		try {
						
			Configuration configuration = new Configuration();
			configuration.configure("hibernate.cfg.xml");			
			sessionFactory = configuration.buildSessionFactory();
			session = sessionFactory.openSession();
                        
		} catch (Throwable ex) {
			System.err.println("Failed to create sessionFactory object." + ex);
			throw new ExceptionInInitializerError(ex);
		} 
	}
	
	//Recuperar un lista con todas las Ciudades
	public List<CiudadPOJO> obtenerListaCiudades(){							
		Transaction tx = null;		
		try{		
			tx = session.beginTransaction();
			Query query = this.session.createQuery("from CiudadPOJO");
			List<CiudadPOJO> listaResult = query.list();
			tx.commit();
			logger.info("Obtenida la lista de Ciudades");
			return listaResult;
		}catch(Exception re){
			logger.error("Error intentando obtener la lista de Ciudades, error: " + re.getMessage());
			return null;
		}				
	}

}